Distributed database systems include a plurality of storage devices spread among a network of interconnected computers. The distributed database systems typically have greater reliability and availability than parallel database systems, among other benefits. Various internet services, for example social networking services, employ distributed database systems to manage the storage and retrieval of information. Generally, the need to efficiently and accurately read and write data across the database system increases with a greater amount of information, a greater number of users, and stricter latency requirements.
In various conventional non-distributed systems, different tenancy configurations may be employed to manage software access by users or tenants. A single tenant system includes an architecture in which each customer has their own software instance. In contrast, a multi-tenant system includes an architecture that enables multiple customers to use a single software instance. There are benefits and drawbacks to both single tenant and multi-tenant systems. In particular, even though multi-tenant systems may generally be more complex than single tenant systems, multi-tenant systems may realize more cost savings, increase data aggregation benefits, and simplify the release management process, among other benefits. However, the complexity and constraints of existing distributed system frameworks and the complex resource requirements of multi-tenant systems limit the configurability and functionality of multi-tenancy configurations.
Accordingly, there is an opportunity for techniques and frameworks to support multi-tenant systems within distributed databases. In particular, there is an opportunity for techniques and frameworks to manage resource allocation within multi-tenant systems implemented in distributed databases.